package net.lzzy.practices.wed.handler;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.WebRequest;

/**
 * @author 2022/5/6.
 * Description
 */

@RestControllerAdvice(annotations = RestController.class)
public class ApiExceptionHandler {
    public static class ExceptionWrapper {
        private final String desc;
        private final String message;
        private final StackTraceElement[] elements;
        public ExceptionWrapper(String desc, String message, StackTraceElement[] elements){
            this.desc = desc;
            this.message = message;
            this.elements = elements;
        }
    }
    public ExceptionWrapper handle(WebRequest request, Exception e){
        return new ExceptionWrapper(request.getDescription(true),e.getMessage(),e.getStackTrace() );
    }
}
